home *** CD-ROM | disk | FTP | other *** search
/ PsL Monthly 1993 December / PSL Monthly Shareware CD-ROM (December 1993).iso / prgmming / dos / c / multi_c.exe / MULTI_C.DOC < prev    next >
Text File  |  1992-11-08  |  61KB  |  2,357 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.                                 MULTI-APP V1.0.1
  7.                          ==============================
  8.  
  9.                          ______________________________
  10.  
  11.                          ==============================
  12.  
  13.                              Documentation Rev 0.3
  14.                          Copyright 1992 by Jeff Heaton
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.                                  MULTI-APP V1.0
  23.                              A MicroGenesis Product
  24.                          Copyright 1992 by Jeff Heaton
  25.                               All Rights Reserved
  26.  
  27.                              MicroGenesis Software
  28.                                P.O. Box No 25534
  29.                               St. Louis, MO 63125
  30.  
  31.                              VOICE: (314) 638-2506
  32.                       DATA:(314) 638-5205 n,8,1,1200-9600
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.     Part I: The Multi-APP Core
  72.  
  73.     Introduction
  74.  
  75.      The MULTI-APP core is the heart of the MULTI-APP system.  All classes
  76.     in the MULTI-APP system are derived from these "core classes." The
  77.     primary purpose of this core is to give all MULTI-APP classes a
  78.     consistent interface.  Many abstract classes(who
  79.     se sole purpose is to define future classes) are defined here, as well
  80.     as real classes for file and data handling.
  81.  
  82.      Using the MULTI-APP core you can provide your application with
  83.     platform-independent access to the basic system resources that all
  84.     applications need.  These are the file system, the serial ports, and
  85.     basic data structure handling.  In addition a spec
  86.     ial "error free" compression based communications protocol is provided
  87.     to allow you to access other MULTI-APP applications and share
  88.     information remotely.
  89.  
  90.      In addition to providing these basic services, MULTI-APP core allows
  91.     you to use the MULTI-APP user interface package to produce GUI(graphic
  92.     user interface) applications in a platform-independent manner.
  93.  
  94.     MultiApp Core Features:
  95.  
  96.      I. Platform Independent Access to Files:
  97.       A. DEVICE compatible for I/O redirection
  98.       B. Allows concurrent shared access of files
  99.       C. Buffered character access provides maximum speed
  100.       D. Fast block read/write functions for record handling
  101.      II. Platform Independent Access to Serial Ports:
  102.       A. DEVICE compatible for I/O redirection
  103.       B. Optional Compression/Error correction(in SOFTWARE)
  104.       C. Access to all hardware lines provided by host computer
  105.      III. Misc Platform Independent Services:
  106.       A. Integer stacks
  107.       B. Base classes for linked lists
  108.       C. File Maintenance functions
  109.  
  110.  
  111.     License
  112.  
  113.      The MultiApp system is currently being marketed as ShareWare.
  114.     Shareware is a unique software distribution method where you, the
  115.     software user, gets to try out the program BEFORE you pay for it.  This
  116.     is a FULL version of the MultiApp core, and you
  117.     get a FULL copy of the text representation of the user manual to
  118.     evaluate for a time period of 30(thirty) days.  If you wish to continue
  119.     using MultiApp after this trial period, or if you publicly release a
  120.     program(commercial,shareware, public domain
  121.     or any other non-personal use) you MUST register your copy.  Upon
  122.     registration you will receive the complete source code to the MultiApp
  123.     product that you registered.  The source code, however, will be for
  124.     your exclusive use and may not be distributed
  125.      directly.  However, applications can be created using source code
  126.     modifications.
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.      If you use MultiApp beyond the initial 30 day limit, or publicly
  138.     release any application that contains MultiApp code you MUST have
  139.     registered MultiApp.  To do otherwise is a direct violation of the
  140.     MultiApp copyright.  However once you have register
  141.     ed a MultiApp product you may use it in your own application, royalty
  142.     free, for as many applications as you wish.
  143.  
  144.      The following information is not in classes and provide miscellaneous
  145.     utility to the MULTI-APP system.  Some of the data structures defined
  146.     here are only used in the MULTI-APP user interface and are thus only
  147.     briefly described.
  148.  
  149.     Contacting MicroGenesis:
  150.     Compuserve  : 76476,1701
  151.     America On-Line : JeffH66
  152.     InterNet  : S108955@UMRVMA.UMR.EDU
  153.     Voice   : (314) 638-2506
  154.     BBS   : (314) 638-1731
  155.  
  156.  
  157.     Compiler Considerations:
  158.      If you want to maximize portablilty between various computer platforms
  159.     MultiApp can greatly speed this process.  However because even C/C++
  160.     compilers interpret the C/C++ standard differently you must account for
  161.     these differences in your code.  Thes
  162.     e are generally only syntactical errors that will show up when you
  163.     compile your application on another platform for the first time.
  164.  
  165.      MultiApp does not use pure c++ as its coding standard.  Pure C++ can
  166.     defiantly be used with MultiApp but since many platforms(particularly
  167.     the Macintosh) are lacking in the area of quality C++ compilers we have
  168.     developed MultiApp based on a simpler
  169.     subset of C++.  This is based on Symantec Think C 5's objects
  170.     extension.  This is basically identical to C++ but without some of
  171.     C++'s more complex features.  IF you want your application to be
  172.     directly compilable on object based C compilers you shou
  173.     ld not use the following C++ features:
  174.  
  175.      Function Overloading
  176.      Operator Overloading
  177.      Function Templates
  178.      Parameters To Constructors
  179.      Static Objects(ie MYOBJECT obj; is illegal it MUST be
  180.         MYOBJECT *obj)
  181.      this redefinition(this=this->next is illegal, all other standard this
  182.     operations are legal however).
  183.      All Functions MUST have prototypes.
  184.      Cast all pointer conversions
  185.  
  186.      These are some general rules to follow to ensure that your programs
  187.      are compatible with Object C type compilers as well as True C++
  188.      compilers.  Once multiApp is ported into C++ compilers on both Dos and
  189.      Mac these restrictions will not be necessary.
  190.      We are currently working on creating a MPW version of MutliApp that
  191.      will support full C++, but for now please remember that not all
  192.      platforms have as "developed" of a base of C++ compilers as the IBM
  193.      platform does.
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.      If you are going to be seriously developing cross-platform
  204.     applications than it is suggested that you own a copy of BOTH
  205.     Borland/Turbo C++ and Think C so you can see the differences for
  206.     yourself.  I have not found it to be too much of a problem in o
  207.     ur own development.  Just treat Think C as the "least common
  208.     denominator" and you will do fine.  We will also be coming out with a
  209.     document further describing Think C/Borland C++ compatibility with the
  210.     release of MultiApp UI.
  211.  
  212.  
  213.     Global Functions:
  214.     void beep(void);
  215.      This function will cause the users computer to beep.
  216.  
  217.     void c2pas(char *str);
  218.      This function will transform str  into a pascal string(assuming it was
  219.     originally a c string).
  220.  
  221.     void pas2c(char *str);
  222.      This function will transform str  into a c string(assuming it was
  223.     originally a pascal string).
  224.  
  225.     void sleep(int tenths);
  226.      This function will wait for tenths 1/10ths of a second.
  227.  
  228.     int timer_check(long tm);
  229.      Call this function,with the value timer_set returns, to see if the
  230.     time is up.  If that time has elapsed then this function returns true.
  231.  
  232.     long timer_set(int tenths);
  233.      Sets a timer for tenths 1/10ths of a second.  The value that this
  234.     function returns should be passed to timer_check to determine if that
  235.     time has elapsed.
  236.  
  237.     void timer_wait(long tm);
  238.      Call this function with the value timer_set returns to wait until that
  239.     amount of time elapses.
  240.  
  241.     void updcrc(unsigned char b);
  242.      Each call of this function causes b to be calculated into the global
  243.     crc.
  244.  
  245.     extern unsigned short crc;
  246.      This variable is used with updcrc  to calculate a CRC value.  After
  247.     you are done feeding